Web services may be understood as a distributed computing technology that allows for the creation of platform and language independent client-server applications. Web services are commonly used to distribute information for other software and devices to consume, not humans, although such information may eventually be published in a human-consumable form, such as a website or other such formats.
In a brief example of a web service, a client contacts a web service in a server by sending a service request asking for information. The server returns the information through a service response. The service request may be an HTTP (hypertext transfer protocol) request, for instance, while the service response may also be an HTTP message, although other protocols can be used. Web services are popular for implementing Internet-scale applications and may in some cases involve other protocols in addition to HTTP, such as WSDL (web services description language) for describing a web service and SOAP (simple object access protocol) for formatting web services messages.
Servers commonly use web services to exchange information and conduct transactions with each other where one server acts as the server-side of an exchange while another server acts as the client-side of an exchange. Client applications, such as web browsers, may also interact with servers via web services. Clients can function as the server-side of a web-services exchange, but usually act as the client-side because of the difficulty associated with contacting client applications behind firewalls or other mechanisms.
It is possible to implement the server-side of a web services exchange in a client application using a proxy service or some other intermediate function to facilitate the exchange of web services communications between the client application and a server. In such scenarios, a proxy service may represent a web service running in a client application to the world such that other elements may reach the client application through the web service. In an example, a voice calling application may include a web service. A proxy service may act as an intermediary through which a calling service can reach the web service to notify the voice calling application of incoming calls and other activity.